package br.com.jw.dao;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;
import java.util.ArrayList;
import android.content.Context;
import br.com.jw.modelo.Produto;

public class ProdutoDao {
	String[] result;
	Context context;
    Produto produto;
    int resultado = 0;
    boolean aux = false;
	public ProdutoDao(Context context) {
		this.context = context;
	}

	public ArrayList<Produto> getListaProdutos() {

		try {
			Socket socket = new Socket("10.0.2.2", 7777);
			DataInputStream in = new DataInputStream(socket.getInputStream());
			DataOutputStream out = new DataOutputStream(
					socket.getOutputStream());
			out.writeUTF("produtos");
			out.writeUTF("listarProdutos");
			out.flush();
			result = in.readUTF().split(",");

			ArrayList<Produto> listaProdutos = new ArrayList<Produto>();
			for (int i = 0; i < result.length; i += 4) {
				listaProdutos.add(new Produto(Integer.parseInt(result[i]),
						result[i + 1], 
						Double.parseDouble(result[i + 2]),
						Integer.parseInt(result[i+3])));
						
			}
			
			out.close();
			in.close();
			socket.close();
			return listaProdutos;
		} catch (Exception e) {
			e.printStackTrace();
			// mostra os erros no log
			e.getMessage();
			return null;
		}
	}

	public boolean excluirProduto(int pro_id){
		System.out.println("excluir dao android: "+pro_id);
		 try{
			 Socket socket = new Socket("10.0.2.2", 7777);
				DataInputStream in = new DataInputStream(socket
						.getInputStream());
				DataOutputStream out = new DataOutputStream(socket
						.getOutputStream());
				out.writeUTF("produtos");
				out.writeUTF("excluirProduto");				
				out.writeInt(pro_id);
				
				out.flush();// envia os dados
	          
				aux = in.readBoolean();
				
				out.close();
				in.close();
				socket.close();
				return aux;
				
	        } catch (Exception e) {	        	 
	           e.printStackTrace();
	        }
		 return aux;
	    }
	
	public int alterarProduto(Produto produto) {
		try {
			Socket socket = new Socket("10.0.2.2", 7777);
			DataInputStream in = new DataInputStream(socket.getInputStream());
			DataOutputStream out = new DataOutputStream(
					socket.getOutputStream());
			out.writeUTF("produtos");
			out.writeUTF("alterarProduto");

			out.writeInt(produto.getPro_id());
			out.writeUTF(produto.getPro_nome());
			out.writeDouble(produto.getPro_valor());
			out.writeInt(produto.getPro_qtde());

			// Log.i("Cliente: ",""+nomeCliente+""+codigo);
			out.flush();// envia os dados

			resultado = in.readInt();

			out.close();
			in.close();
			socket.close();
            return resultado;
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return 0;
	}

	public int cadastrarProduto(Produto produto) {
		try {
			Socket socket = new Socket("10.0.2.2", 7777);
			DataInputStream in = new DataInputStream(socket.getInputStream());
			DataOutputStream out = new DataOutputStream(socket.getOutputStream());
			out.writeUTF("produtos");
			out.writeUTF("cadastrarProduto");

			out.writeUTF(produto.getPro_nome());
			out.writeDouble(produto.getPro_valor());
			out.writeInt(produto.getPro_qtde());

			out.flush();// envia os dados

			resultado = in.readInt();
           
			out.close();
			in.close();
			socket.close();
			return resultado;
			
		} catch (Exception e) {
			e.printStackTrace();
			// return false;
		}
		return 0;
	}

}
